#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//void Print(double arr[], int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz; i++)
//	{
//		printf("%lf ",arr[i]);
//	}
//}
//
//void Swap(char* buf1, char* buf2, size_t width)
//{
//	for (int i = 0; i < width; i++)
//	{
//		char tmp = *buf1;
//		*buf1 = *buf2;
//		*buf2 = tmp;
//		buf1++;
//		buf2++;
//	}
//}
//
//int cmp_arr(const void* e1, const void* e2)
//{
//	return *(double*)e1 - *(double*)e2;
//}
//
////qsort(void* base,size_t num,size_t width,int(cmp*)(const void*e1,const void*e2))
//void bullue_sort(void* base, size_t num,size_t width,int(*cmp)(const void* e1,const void* e2))
//{
//	int i = 0;
//	for (i = 0; i < num -1; i++)
//	{
//		int j = 0;
//		for (j = 0; j < num -1-i; j++)
//		{
//			if (cmp((char*)base + j * width, (char*)base+(j+1) * width)>0)
//			{
//				Swap((char*)base+j * width, (char*)base+(j + 1) * width,width);
//			}
//		}
//	}
//}
//int main()
//{
//	double arr[] = { 1.8,4.32,6.45,2.78,8.883,23.45,56.12,11.66,9.999 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	bullue_sort(arr,sz,sizeof(arr[0]),cmp_arr);
//	Print(arr,sz);
//	return 0;
//}
void Print(float arr[], int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%f ",arr[i]);
	}
}


int cmp_float(const void* e1, const void* e2)
{
	return *(float*)e1 - *(float*)e2;
}

struct Stu
{
	double a;
	int b;
};

int main()
{
	float arr[] = { 3.4555,6.234,9.234,7.3123,2.35435 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	qsort(arr, sz, sizeof(arr[0]), cmp_float);
	Print(arr, sz);
	return 0;
}